package com.loong.life.common.forehead.param;

import com.loong.common.validator.group.CommonInsert;
import com.loong.common.validator.group.CommonUpdate;
import com.loong.common.validator.group.CommonValidate;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Builder
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class PhoneChargeRecordForeheadParam {

    /**
     * 充值记录id
     */
    @NotNull(message = "充值记录id不能为空",groups = {CommonUpdate.class})
    private Long id;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 手机号码
     */
    @NotBlank(message = "手机号码不能为空",groups = {CommonInsert.class,CommonValidate.class})
    private String phoneNumber;

    /**
     * 订单编号
     */
    @NotBlank(message = "订单编号不能为空",groups = {CommonValidate.class})
    private String orderNum;

    /**
     * 充值费用
     */
    @NotNull(message = "新增时充值费用不能为空",groups = {CommonInsert.class})
    private BigDecimal money;

    /**
     * 代理商id
     */
    @NotNull(message = "新增时代理商id不能为空",groups = {CommonInsert.class})
    private Long agentId;

    /**
     * 产品id
     */
    @NotNull(message = "新增时产品id不能为空",groups = {CommonInsert.class,CommonValidate.class})
    private Long productId;

    /**
     * 充值状态(1支付成功未充值，2充值中，3充值成功，4充值失败，5已退款，6等待付款，7交易关闭，8订单取消)
     */
    private Integer chargeStatus;

    /**
     * 充值类型(0话费充值,1流量充值,2短信充值)
     */
    @NotNull(message = "新增时充值类型不能为空",groups = {CommonInsert.class})
    private Integer chargeType;

    /**
     * 付款方式
     */
    @NotNull(message = "新增时付款方式不能为空",groups = {CommonInsert.class})
    private Integer paidType;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date lastUpdateTime;
}